package com.example.myapplication.a_class.a05_sealed

/**
 * 声明一个密封类在类名使用 sealed 修饰符
 * 所有子类都必须在与密封类自身相同的文件中声明（子类的扩展类不受此控制）
 * 一个密封类是自身抽象的，它不能直接实例化并可以有抽象（abstract）成员
 * 密封类不允许有非-private 构造函数（其构造函数默认为 private）
 */
sealed class Animal

class Dog (var age:Int): Animal(){
    fun sysAge(){
        println("age: $age")
    }
}

class Cat (var age:Int): Animal(){
    fun sysAge(){
        println("age: $age")
    }
}

